What is triple-beam?
The triple-beam npm package is a module that provides constants for the Winston logging library, which is widely used in Node.js applications for logging purposes. It includes log levels, colors, and configuration utilities that can be used to customize and format log messages.
What are triple-beam's main functionalities?
Log Levels
Triple-beam provides a set of predefined log levels that can be used to categorize log messages by their severity. This allows for filtering and controlling the flow of log output.
{"levels": {"info": 0, "warn": 1, "error": 2, "verbose": 3}}
Configurable Log Properties
It allows for the configuration of log properties using symbols, which ensures that log metadata is not overwritten when multiple transports are used in Winston.
{"MESSAGE": Symbol.for('message'), "LEVEL": Symbol.for('level')}
Custom Log Formats
Triple-beam provides constants that can be used to create custom log formats in Winston, allowing developers to define how log messages should be structured and presented.
const { format } = require('winston');
const { SPLAT, LEVEL, MESSAGE } = require('triple-beam');
const customFormat = format((info, opts) => {
info[SPLAT] = info[SPLAT] || [];
info[LEVEL] = info[LEVEL] || 'info';
info[MESSAGE] = `Custom format: ${info.message}`;
return info;
});
Other packages similar to triple-beam
loglevel
Loglevel is a logging library for JavaScript that provides a minimalistic and lightweight logging solution. It offers similar log level functionality but does not have the same level of configurability or integration with Winston as triple-beam.
bunyan
Bunyan is a simple and fast JSON logging library for Node.js services. It provides log levels and custom serializers. While it has similar logging capabilities, it is a standalone logging library and does not serve as a set of constants for another library like triple-beam does for Winston.
pino
Pino is a very low overhead Node.js logger, which also outputs logs in JSON format. It is designed for speed and provides different log levels. Pino is a full-fledged logging solution and not just a set of constants, making it more comparable to Winston itself rather than triple-beam.
triple-beam
Definitions of levels for logging purposes & shareable Symbol constants.
Usage
const { LEVEL } = require('triple-beam');
const colors = require('colors/safe');
const info = {
[LEVEL]: 'error',
level: 'error',
message: 'hey a logging message!'
};
info.level = colors.green(info.level);
console.log(info.level === 'error');
console.log(info[LEVEL] === 'error');
Tests
Tests are written with mocha
, assume
, and nyc
. They can be run with npm
:
npm test
LICENSE: MIT